From a55585779379db13f69f047e7802f6bccf105e95 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 14 Mar 2006 17:35:38 +0100 Subject: [PATCH] Add a read barrier to the time-values-uptodate xenlinux time checking function. Also fix monotonic clock to use just a compile barrier instead of smp_rmb. Signed-off-by: Keir Fraser --- linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c index 62139abbe4..9d0054980e 100644 --- a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c +++ b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c @@ -332,6 +332,7 @@ static inline int time_values_up_to_date(int cpu) src = &HYPERVISOR_shared_info->vcpu_info[cpu].time; dst = &per_cpu(shadow_time, cpu); + rmb(); return (dst->version == src->version); } @@ -558,11 +559,11 @@ unsigned long long monotonic_clock(void) do { local_time_version = shadow->version; - smp_rmb(); + barrier(); time = shadow->system_timestamp + get_nsec_offset(shadow); if (!time_values_up_to_date(cpu)) get_time_values_from_xen(); - smp_rmb(); + barrier(); } while (local_time_version != shadow->version); put_cpu(); -- 2.30.2